Computer performance evaluation involves measuring and analyzing the total effectiveness of a computer system, including throughput, individual response time, and availability of the system. Tools have been developed to monitor system resources while one or more programs execute. These tools typically collect system information and log the information to one or more performance logs. System information includes information concerning how much memory is being used, how much a computer is paging, how much CPU time a process is taking, and so on. Exemplary system performance monitoring tools include Microsoft's PerfMon and VERITAS i3™ for SQL Server.
Another type of performance evaluation tool monitors a single executing software application. For example, Microsoft's SQL Profiler captures SQL Server events from the server and saves them in a trace file. The trace file may be helpful in the troubleshooting of logic and program performance problems. Other well-known program performance evaluation tools include Oracle 9i trace.
Frequently, it would be useful to be able to correlate program performance data with system performance data to determine what effect application events and operations have on the computer system as a whole, in terms of CPU utilization, memory consumption and so on. The reverse is also true. It would often be helpful for a user to be able to understand how computer system resources at a given current rate of utilization affect the execution of a particular program.